﻿using System.ServiceModel;
using JTLeigh.Commerce.Spencer.Features.ProductCatalog.Service.Contracts.GetAllCategoryPathsToProduct;

namespace JTLeigh.Commerce.Spencer.Features.ProductCatalog.Service.Contracts
{

	/// <summary>
	/// WCF service interface for the Product Catalog service.
	/// </summary>
	[ServiceContract]
	public interface IProductCatalogService
	{

		#region Methods

		/// <summary>
		/// Gets all of the category paths to a product.
		/// </summary>
		/// <param name="request">The <see cref="GetAllCategoryPathsToProductRequest"/> request 
		/// object.</param>
		/// <returns>The <see cref="GetAllCategoryPathsToProductResponse"/> response object.</returns>
		/// <remarks>
		/// <para>
		/// A single product can exist in multiple categories and at different levels of the 
		/// hierarchy.
		/// </para>
		/// </remarks>
        [OperationContract]
		GetAllCategoryPathsToProductResponse GetAllCategoryPathsToProduct(GetAllCategoryPathsToProductRequest request);

		#endregion // Methods

	}

}
